home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / prog / adlip.arj / DEFS.MAC < prev    next >
Text File  |  1988-11-10  |  1KB  |  62 lines

  1. ;    DEFS.MAC
  2. ;    87/03/18, Marc Savary, Ad Lib.
  3.  
  4. dos_terminate        equ    20H
  5. dos_tsr            equ    27H
  6. dos_function_call    equ    21H
  7. dos_get_vector_function    equ    35H
  8. dos_set_vector_function    equ    25H
  9. dos_print_string_function equ    9H
  10.  
  11. sound_driver_int    equ    101
  12.  
  13.  
  14.  
  15. ; cette macro definie la procedure 'GetSoundDrvVersion'
  16. ; qui retourne le numero de version du sound-driver dans
  17. ; AH et AL, ou 0 dans AX s'il n'est pas charge.
  18. ;
  19. ; la signature est situee immediatement avant le point d'entree
  20. ; de la fonction d'interruption.
  21. ;
  22. DrvVersionProc MACRO NAME
  23.     IF LPROG
  24. NAME proc FAR
  25.     ELSE
  26. NAME proc NEAR
  27.     ENDIF
  28.  
  29.     push    es
  30.     push    si
  31.     push    di
  32.  
  33.     mov    al, sound_driver_int
  34.     mov    ah, dos_get_vector_function
  35.     int    dos_function_call        ; es:bx
  36. ; comparer les deux signatures:
  37.     mov    cx, sig_cmp_len            ; longueur a comparer...
  38. ;    IF LPROG EQ 0
  39. ;    mov    si, offset PGROUP:signature
  40. ;    ELSE
  41. ;    mov    si, offset _CODE:signature
  42. ;    ENDIF
  43.     mov    si, offset signature
  44.  
  45.     mov    di, bx
  46.     sub    di, sig_len+2            ; offset de la signature dans driver
  47.     mov    ax, es:[di]            ; version # ( 1.3 & +)
  48.     add    di, 2
  49.     cld                    ; forward comparaison    
  50.     repz    cmps cs:byte ptr [si], es:[di]    ; compare string
  51.     jz    fin
  52.     xor    ax, ax
  53. fin:
  54.     pop    di
  55.     pop    si
  56.     pop    es
  57.     ret
  58. NAME ENDP
  59.  
  60.     ENDM
  61.  
  62.